public:
    /* 输入类型选择 */
    typedef enum : quint8
    {
        NPN = 0,
        PNP = 1
    } InputIOType;

    /* 电压等级 */
    typedef enum : quint8
    {
        PWR_External = 0,
        PWR_5V = 1,
        PWR_24V = 2
    } PowerLevel;

    /* 模拟量选择 */
    typedef enum : quint8
    {
        // 模拟电压
        // 模拟电流
        AnalogVoltage_10V = 0,
        AnalogCurrent_24mA = 1,
    } AnalogSelect;

#pragma pack(1)
    /* PDO发送 */
    typedef struct
    {
        // 输出电平 bit[16-31]:预留
        quint16 output;
        // 预留TxData
        quint32 TxData;
    } IOTxGroup; // x1

    /* PDO接收 */
    typedef struct
    {
        // 输入电平  bit[10-15]:预留
        quint16 input;
        // 输出电流
        quint16 outputcurrent;
        // 模拟输入值
        quint16 analogInValue[4];
        // 预留RxData
        quint32 RxData;
    } IORxGroup; // x1

    /* 参数配置 SDO发送 */
    typedef struct
    {
        // 电压等级
        PowerLevel powerLevel;
        // 输入类型
        InputIOType inputType;
        // 消抖动时间
        quint16 debounceTime;
        // 模拟输入选择
        AnalogSelect analogInSelect[4];
        // 预留配置数据
        quint32 configData;
    } ParmConfig; // x1
#pragma pack()